""" 
海龟绘图
"""

# 引入海龟绘图模块
import turtle

# 屏幕
""" 
Screen 专有方法
  bye() 退出
  exitonclick() 当点击时退出
  setup() 设置
  title() 标题

  turtle.setup(width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"])
  设置主窗口的大小和位置。默认参数值保存在配置字典中，可通过 turtle.cfg 文件进行修改。

  参数
    width -- 如为一个整型数值，表示大小为多少像素，如为一个浮点数值，则表示屏幕的占比；默认为屏幕的 50%
    height -- 如为一个整型数值，表示高度为多少像素，如为一个浮点数值，则表示屏幕的占比；默认为屏幕的 75%
    startx -- 如为正值，表示初始位置距离屏幕左边缘多少像素，负值表示距离右边缘，None 表示窗口水平居中
    starty -- 如为正值，表示初始位置距离屏幕上边缘多少像素，负值表示距离下边缘，None 表示窗口垂直居中
"""

turtle.setup(600, 400)

# 画布
""" 
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
参数
canvwidth -- 正整型数，以像素表示画布的新宽度值
canvheight -- 正整型数，以像素表示画面的新高度值
bg -- 颜色字符串或颜色元组，新的背景颜色
"""

turtle.screensize(60, 40, 'green')

# 绘制形状（外观）
""" 
turtle.shape(name=None)
  参数
    name -- 一个有效的形状名字符串
    设置海龟形状为 name 指定的形状名，如未指定形状名则返回当前的形状名。
    name 指定的形状名应存在于 TurtleScreen 的 shape 字典中。
    多边形的形状初始时有以下几种: "arrow", "turtle", "circle", "square", "triangle", "classic"。
    要了解如何处理形状请参看 Screen 方法 register_shape()。
"""

turtle.shape("turtle")
print("小海龟初始的位置是： %s" % str(turtle.position()))

""" 
海龟动作
  向前移动
  turtle.forward(distance)
  turtle.fd(distance)
  参数
    distance -- 一个数值 (整型或浮点型)
    海龟前进 distance 指定的距离，方向为海龟的朝向。
  
  向后移动
  turtle.back(distance)
  turtle.bk(distance)
  turtle.backward(distance)
  参数
    distance -- 一个数值
    海龟后退 distance 指定的距离，方向与海龟的朝向相反。不改变海龟的朝向。

  右转
  turtle.right(angle)
  turtle.rt(angle)
  参数
    angle -- 一个数值 (整型或浮点型)
    海龟右转 angle 个单位。(单位默认为角度，但可通过 degrees() 和 radians() 函数改变设置。) 角度的正负由海龟模式确定，参见 mode()。
  
  左转
  turtle.left(angle)
  turtle.lt(angle)
  参数
    angle -- 一个数值 (整型或浮点型)
    海龟左转 angle 个单位。(单位默认为角度，但可通过 degrees() 和 radians() 函数改变设置。) 角度的正负由海龟模式确定，参见 mode()。
"""

# 前进
turtle.fd(30)
turtle.forward(100)

# 后退
turtle.bk(30)
turtle.back(50)
turtle.backward(50)

""" 
绘制正三角形
"""
turtle.fd(100)
turtle.left(120)
turtle.fd(100)
turtle.lt(120)
turtle.fd(100)
turtle.lt(120)

""" 
绘制倒三角形
"""

turtle.fd(100)
turtle.rt(120)
turtle.fd(100)
turtle.right(120)
turtle.fd(100)
turtle.right(120)

